package com.htwy.youPu.bean;

import com.htwy.core.config.WebappConfig;
import com.htwy.core.model.BaseModel;
import com.htwy.kits.NumberKit;
import com.jfinal.core.converter.Converters;
import com.jfinal.kit.Kv;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.IBean;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.SqlPara;
import com.jfinal.plugin.ehcache.CacheName;

import java.util.List;
import java.util.Map;
import java.util.Date;

/**
 * <p>事件预案步骤详情<br />
 * 表名:HT_Chpgl<br />
 * 编写时间:2018-01-01<br />
 * @version 1.0-SNAPSHOT
 */
@CacheName("com.htwy.youPu.bean.Chpgl")
public class Chpgl extends BaseModel<Chpgl> implements IBean{

    public static Chpgl dao = new Chpgl();


    /**
     * <p>设置主键</p>
     * @param uuid 主键
     * @return 当前对象
     */
    public Chpgl setUuid(String uuid){
        set("uuid", uuid);
        return this;
    }

    /**
     * <p>获取主键</p>
     * @return 主键
     */
    public String getUuid(){
        return getStr("uuid");
    }


    /**
     * <p>设置供应商产品ID</p>
     * @param gyshchpId 供应商产品ID
     * @return 当前对象
     */
    public Chpgl setGyshchpId(String gyshchpId){
        set("gyshchpId", gyshchpId);
        return this;
    }

    /**
     * <p>获取供应商产品ID</p>
     * @return 供应商产品ID
     */
    public String getGyshchpId(){
        return getStr("gyshchpId");
    }

    /**
     * <p>设置标题</p>
     * @param bt 标题
     * @return 当前对象
     */
    public Chpgl setBt(String bt){
        set("bt", bt);
        return this;
    }

    /**
     * <p>获取标题</p>
     * @return 标题
     */
    public String getBt(){
        return getStr("bt");
    }

    /**
     * <p>设置商品类型</p>
     * @param shplx 商品类型
     * @return 当前对象
     */
    public Chpgl setShplx(String shplx){
        set("shplx", shplx);
        return this;
    }

    /**
     * <p>获取商品类型</p>
     * @return 商品类型
     */
    public String getShplx(){
        return getStr("shplx");
    }

    /**
     * <p>设置入库方式</p>
     * @param rkfsh 入库方式
     * @return 当前对象
     */
    public Chpgl setRkfsh(String rkfsh){
        set("rkfsh", rkfsh);
        return this;
    }

    /**
     * <p>获取入库方式</p>
     * @return 入库方式
     */
    public String getRkfsh(){
        return getStr("rkfsh");
    }

    /**
     * <p>设置供应商</p>
     * @param gysh 供应商
     * @return 当前对象
     */
    public Chpgl setGysh(String gysh){
        set("gysh", gysh);
        return this;
    }

    /**
     * <p>获取供应商</p>
     * @return 供应商
     */
    public String getGysh(){
        return getStr("gysh");
    }

    /**
     * <p>设置关联POI值</p>
     * @param glPOI 关联POI值
     * @return 当前对象
     */
    public Chpgl setGlPOI(String glPOI){
        set("glPOI", glPOI);
        return this;
    }

    /**
     * <p>获取关联POI值</p>
     * @return 关联POI值
     */
    public String getGlPOI(){
        return getStr("glPOI");
    }

    /**
     * <p>设置状态</p>
     * @param zht 状态
     * @return 当前对象
     */
    public Chpgl setZht(String zht){
        set("zht", zht);
        return this;
    }

    /**
     * <p>获取状态</p>
     * @return 状态
     */
    public String getZht(){
        return getStr("zht");
    }

    /**
     * <p>设置更新时间</p>
     * @param gxshj 更新时间
     * @return 当前对象
     */
    public Chpgl setGxshj(Date gxshj){
        set("gxshj", gxshj);
        return this;
    }

    /**
     * <p>获取更新时间</p>
     * @return 更新时间
     */
    public Date getGxshj(){
        return getDate("gxshj");
    }

    /**
     * <p>设置更新方式</p>
     * @param gxfsh 更新方式
     * @return 当前对象
     */
    public Chpgl setGxfsh(String gxfsh){
        set("gxfsh", gxfsh);
        return this;
    }

    /**
     * <p>获取更新方式</p>
     * @return 更新方式
     */
    public String getGxfsh(){
        return getStr("gxfsh");
    }

    /**
     * <p>设置是否实名制</p>
     * @param shmzh 是否实名制
     * @return 当前对象
     */
    public Chpgl setShmzh(String shmzh){
        set("shmzh", shmzh);
        return this;
    }

    /**
     * <p>获取是否实名制</p>
     * @return 是否实名制
     */
    public String getShmzh(){
        return getStr("shmzh");
    }

    /**
     * <p>设置子标题</p>
     * @param zbt 子标题
     * @return 当前对象
     */
    public Chpgl setZbt(String zbt){
        set("zbt", zbt);
        return this;
    }

    /**
     * <p>获取子标题</p>
     * @return 子标题
     */
    public String getZbt(){
        return getStr("zbt");
    }

    /**
     * <p>设置活动标题</p>
     * @param hdbt 活动标题
     * @return 当前对象
     */
    public Chpgl setHdbt(String hdbt){
        set("hdbt", hdbt);
        return this;
    }

    /**
     * <p>获取活动标题</p>
     * @return 活动标题
     */
    public String getHdbt(){
        return getStr("hdbt");
    }

    /**
     * <p>设置兑换方式</p>
     * @param dhfsh 兑换方式
     * @return 当前对象
     */
    public Chpgl setDhfsh(String dhfsh){
        set("dhfsh", dhfsh);
        return this;
    }

    /**
     * <p>获取兑换方式</p>
     * @return 兑换方式
     */
    public String getDhfsh(){
        return getStr("dhfsh");
    }

    /**
     * <p>设置市场价格</p>
     * @param shchjg 市场价格
     * @return 当前对象
     */
    public Chpgl setShchjg(String shchjg){
        set("shchjg", shchjg);
        return this;
    }

    /**
     * <p>获取市场价格</p>
     * @return 市场价格
     */
    public String getShchjg(){
        return getStr("shchjg");
    }

    /**
     * <p>设置销售价格</p>
     * @param xshjg 销售价格
     * @return 当前对象
     */
    public Chpgl setXshjg(String xshjg){
        set("xshjg", xshjg);
        return this;
    }

    /**
     * <p>获取销售价格</p>
     * @return 销售价格
     */
    public String getXshjg(){
        return getStr("xshjg");
    }

    /**
     * <p>设置出发城市</p>
     * @param chfchsh 出发城市
     * @return 当前对象
     */
    public Chpgl setChfchsh(String chfchsh){
        set("chfchsh", chfchsh);
        return this;
    }

    /**
     * <p>获取出发城市</p>
     * @return 出发城市
     */
    public String getChfchsh(){
        return getStr("chfchsh");
    }

    /**
     * <p>设置到达城市</p>
     * @param ddchsh 到达城市
     * @return 当前对象
     */
    public Chpgl setDdchsh(String ddchsh){
        set("ddchsh", ddchsh);
        return this;
    }

    /**
     * <p>获取到达城市</p>
     * @return 到达城市
     */
    public String getDdchsh(){
        return getStr("ddchsh");
    }

    /**
     * <p>设置到达城市所属国家</p>
     * @param ddchshsshgj 到达城市所属国家
     * @return 当前对象
     */
    public Chpgl setDdchshsshgj(String ddchshsshgj){
        set("ddchshsshgj", ddchshsshgj);
        return this;
    }

    /**
     * <p>获取到达城市所属国家</p>
     * @return 到达城市所属国家
     */
    public String getDdchshsshgj(){
        return getStr("ddchshsshgj");
    }

    /**
     * <p>设置搜索POI值</p>
     * @param ssPOI 搜索POI值
     * @return 当前对象
     */
    public Chpgl setSsPOI(String ssPOI){
        set("ssPOI", ssPOI);
        return this;
    }

    /**
     * <p>获取搜索POI值</p>
     * @return 搜索POI值
     */
    public String getSsPOI(){
        return getStr("ssPOI");
    }

    /**
     * <p>设置关联POI状态</p>
     * @param glPOIzht 关联POI状态
     * @return 当前对象
     */
    public Chpgl setGlPOIzht(String glPOIzht){
        set("glPOIzht", glPOIzht);
        return this;
    }

    /**
     * <p>获取关联POI状态</p>
     * @return 关联POI状态
     */
    public String getGlPOIzht(){
        return getStr("glPOIzht");
    }

    /**
     * <p>设置PC版预订连接</p>
     * @param PCydlj PC版预订连接
     * @return 当前对象
     */
    public Chpgl setPCydlj(String PCydlj){
        set("PCydlj", PCydlj);
        return this;
    }

    /**
     * <p>获取PC版预订连接</p>
     * @return PC版预订连接
     */
    public String getPCydlj(){
        return getStr("PCydlj");
    }

    /**
     * <p>设置H5版预订连接</p>
     * @param H5ydlj H5版预订连接
     * @return 当前对象
     */
    public Chpgl setH5ydlj(String H5ydlj){
        set("H5ydlj", H5ydlj);
        return this;
    }

    /**
     * <p>获取H5版预订连接</p>
     * @return H5版预订连接
     */
    public String getH5ydlj(){
        return getStr("H5ydlj");
    }

    /**
     * <p>设置产品经理推荐</p>
     * @param chpjltj 产品经理推荐
     * @return 当前对象
     */
    public Chpgl setChpjltj(String chpjltj){
        set("chpjltj", chpjltj);
        return this;
    }

    /**
     * <p>获取产品经理推荐</p>
     * @return 产品经理推荐
     */
    public String getChpjltj(){
        return getStr("chpjltj");
    }

    /**
     * <p>设置产品简介</p>
     * @param chpjj 产品简介
     * @return 当前对象
     */
    public Chpgl setChpjj(String chpjj){
        set("chpjj", chpjj);
        return this;
    }

    /**
     * <p>获取产品简介</p>
     * @return 产品简介
     */
    public String getChpjj(){
        return getStr("chpjj");
    }

    /**
     * <p>设置费用包含</p>
     * @param fybaoh 费用包含
     * @return 当前对象
     */
    public Chpgl setFybaoh(String fybaoh){
        set("fybaoh", fybaoh);
        return this;
    }

    /**
     * <p>获取费用包含</p>
     * @return 费用包含
     */
    public String getFybaoh(){
        return getStr("fybaoh");
    }

    /**
     * <p>设置费用不含</p>
     * @param fybuh 费用不含
     * @return 当前对象
     */
    public Chpgl setFybuh(String fybuh){
        set("fybuh", fybuh);
        return this;
    }

    /**
     * <p>获取费用不含</p>
     * @return 费用不含
     */
    public String getFybuh(){
        return getStr("fybuh");
    }

    /**
     * <p>设置预订须知</p>
     * @param ydxzh 预订须知
     * @return 当前对象
     */
    public Chpgl setYdxzh(String ydxzh){
        set("ydxzh", ydxzh);
        return this;
    }

    /**
     * <p>获取预订须知</p>
     * @return 预订须知
     */
    public String getYdxzh(){
        return getStr("ydxzh");
    }

    /**
     * <p>设置退改规则</p>
     * @param tggz 退改规则
     * @return 当前对象
     */
    public Chpgl setTggz(String tggz){
        set("tggz", tggz);
        return this;
    }

    /**
     * <p>获取退改规则</p>
     * @return 退改规则
     */
    public String getTggz(){
        return getStr("tggz");
    }

    /**
     * <p>设置提前预定天数</p>
     * @param tqydtsh 提前预定天数
     * @return 当前对象
     */
    public Chpgl setTqydtsh(String tqydtsh){
        set("tqydtsh", tqydtsh);
        return this;
    }

    /**
     * <p>获取提前预定天数</p>
     * @return 提前预定天数
     */
    public String getTqydtsh(){
        return getStr("tqydtsh");
    }

    /**
     * <p>设置提前预订时间</p>
     * @param tqydshj 提前预订时间
     * @return 当前对象
     */
    public Chpgl setTqydshj(String tqydshj){
        set("tqydshj", tqydshj);
        return this;
    }

    /**
     * <p>获取提前预订时间</p>
     * @return 提前预订时间
     */
    public String getTqydshj(){
        return getStr("tqydshj");
    }

    /**
     * <p>设置最小预订数量</p>
     * @param zxydshl 最小预订数量
     * @return 当前对象
     */
    public Chpgl setZxydshl(String zxydshl){
        set("zxydshl", zxydshl);
        return this;
    }

    /**
     * <p>获取最小预订数量</p>
     * @return 最小预订数量
     */
    public String getZxydshl(){
        return getStr("zxydshl");
    }

    /**
     * <p>设置推荐指数</p>
     * @param tjzhsh 推荐指数
     * @return 当前对象
     */
    public Chpgl setTjzhsh(String tjzhsh){
        set("tjzhsh", tjzhsh);
        return this;
    }

    /**
     * <p>获取推荐指数</p>
     * @return 推荐指数
     */
    public String getTjzhsh(){
        return getStr("tjzhsh");
    }

    /**
     * <p>设置权重</p>
     * @param qzh 权重
     * @return 当前对象
     */
    public Chpgl setQzh(String qzh){
        set("qzh", qzh);
        return this;
    }

    /**
     * <p>获取权重</p>
     * @return 权重
     */
    public String getQzh(){
        return getStr("qzh");
    }

    /**
     * <p>设置行程推荐</p>
     * @param xchtj 行程推荐
     * @return 当前对象
     */
    public Chpgl setXchtj(String xchtj){
        set("xchtj", xchtj);
        return this;
    }

    /**
     * <p>获取行程推荐</p>
     * @return 行程推荐
     */
    public String getXchtj(){
        return getStr("xchtj");
    }

    /**
     * <p>设置商品标签</p>
     * @param shpbq 商品标签
     * @return 当前对象
     */
    public Chpgl setShpbq(String shpbq){
        set("shpbq", shpbq);
        return this;
    }

    /**
     * <p>获取商品标签</p>
     * @return 商品标签
     */
    public String getShpbq(){
        return getStr("shpbq");
    }


    /**
     * <p>根据条件获取事件预案步骤详情列表<br />
     * sqlParaKey:com.htwy.youPu.bean.Chpgl.findByCondition</p>
     * @param conditions 传入的条件
     * @return 事件预案步骤详情列表
     */
    @Override
    public List<Chpgl> findByCondition(Map<String,Object> conditions){
        SqlPara sqlPara = getSqlPara("com.htwy.youPu.bean.Chpgl.findByCondition",conditions);
        return dao().find(sqlPara);
    }

    /**
     * <p>根据分页信息和条件获取事件预案步骤详情列表<br />
     * sqlParaKey:com.htwy.youPu.bean.Chpgl.findByCondition</p>
     * @param conditions 传入的条件
     * @return 事件预案步骤详情列表及分页信息
     */
    @Override
    public Page<Chpgl> paginateByCondition(Map<String, Object> conditions) {
        int pageNumber = 1;
        int pageSize = WebappConfig.getConfig().getInt("defaultPageSize", 20);
        if(conditions.containsKey("pageNumber")) {
            String pageNumberStr = (String) conditions.get("pageNumber");
            if (StrKit.notBlank(pageNumberStr) && NumberKit.isZNum(pageNumberStr)) {
                pageNumber = Integer.parseInt(pageNumberStr);
            }
        }
        if(conditions.containsKey("pageSize")) {
            String pageSizeStr = (String) conditions.get("pageSize");
            if (StrKit.notBlank(pageSizeStr) && NumberKit.isZNum(pageSizeStr)) {
                pageSize = Integer.parseInt(pageSizeStr);
            }
        }
        return paginateByCondition(pageNumber,pageSize,conditions);
    }

    /**
     * <p>根据分页信息和条件获取事件预案步骤详情列表<br />
     * sqlParaKey:com.htwy.youPu.bean.Chpgl.findByCondition</p>
     * @param pageNumber 当前页数
     * @param pageSize 每页条数
     * @param conditions 传入的条件
     * @return 事件预案步骤详情列表及分页信息
     */
    @Override
    public Page<Chpgl> paginateByCondition(int pageNumber, int pageSize, Map<String, Object> conditions) {
        SqlPara sqlPara = getSqlPara("com.htwy.youPu.bean.Chpgl.findByCondition",conditions);
        return dao().paginate(pageNumber,pageSize,sqlPara);
    }

    /**
     * <p>根据主键数组删除事件预案步骤详情<br />
     * sqlParaKey:com.htwy.youPu.bean.Chpgl.deleteByPks</p>
     * @param pks 主键数组
     * @return 删除的条数
     */
    public int deleteByPks(String... pks){
        if(pks != null && pks.length>0) {
            SqlPara sqlPara = getSqlPara("com.htwy.youPu.bean.Chpgl.deleteByPks", Kv.by("pks",pks));
            int result = Db.update(sqlPara);
            return result;
        }
        return 0;
    }

}